package com.yqtsoft.utils.excel.utils;

import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

/**
 * excel 导入导出工具
 * @description:
 * @auther: CrazyShaQiuShi
 * @email 3105334046@qq.com
 * @date: 2018-12-11 9:28
 * @version: 1.0
 */
public interface IExcelUtil<T> {

    /**
     * 构建一个导入导出工具
     *
     * @param clazz 一个类类型
     * @return IExcelUtil<T> 返回类型
     */
    IExcelUtil<T> build(Class<T> clazz);

    /**
     * 数据导出
     *
     * @param sheetName
     * @param file
     * @return List<T> 导出数据
     */
    List<T> importExcel(String sheetName, File file) throws Exception;

    /**
     * 到出省对象
     * @param fileName
     * @param inputStream
     * @return
     * @throws Exception
     */
    List<T> importExcel(String fileName, InputStream inputStream) throws Exception;

    /**
     * 到出省对象
     * @param fileName
     * @param sheetName
     * @param inputStream
     * @return
     * @throws Exception
     */
    List<T> importExcel(String fileName, String sheetName, InputStream inputStream) throws Exception;

    /**
     * 导出到一个 sheet中
     *
     * @param list
     * @param sheetName
     * @param output
     * @return boolean
     */
    boolean exportExcel(List<T> list, String sheetName, OutputStream output);

    /**
     * 导出到多个 sheet中
     *
     * @param lists
     * @param sheetNames
     * @param output
     * @return boolean
     */
    boolean exportExcel(List<T> lists[], String sheetNames[], OutputStream output);

}
